package com.wjw.java.others.exception_;

import java.io.FileInputStream;
import java.io.FileNotFoundException;

/**
 * 异常处理的方式二：throws,将发生的异常抛出,交给调用者处理,最顶级的处理者就是JVM
 *
 * JVM执行                 -->   main()调用           -->  f1()调用                   -->f2()
 *                                                                                       ↓
 * JVM输出异常信息,退出程序  <--  main()throws或t-c-f  <--  f1()throws或t-c-f  <--  throws或t-c-f
 */
public class ThrowsExercise {
    public static void main(String[] args) {
        //常见的编译异常,要么try-catch自己处理,要么throws抛出给调用者处理
        try {
            testThrowsException();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

    //------------------------------------常见的编译异常(start)------------------------------------
    /**
     * 这里的异常是一个编译异常：FileNotFoundException
     * 可以使用try-catch-finally进行异常捕获处理,
     * 还可以使用throws抛出异常,交给调用者进行处理,
     * throws后面的异常类型可以是方法中产生的的异常类型,也可以是该异常的父类类型
     * throws关键字后也可以是异常列表,即抛出多个异常
     */
    public static void testThrowsException() throws FileNotFoundException {
        FileInputStream fis = new FileInputStream("D://aaa.txt");
    }
    //------------------------------------常见的编译异常(end)------------------------------------
}
